home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue25 / hexmap12 / HEXMAP12.ZIP / Unit1.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1997-05-28  |  6.4 KB  |  260 lines

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, Hexmap, StdCtrls, Menus, ExtCtrls, Spin, Buttons;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     ColorDialog1: TColorDialog;
  12.     GroupBox1: TGroupBox;
  13.     Button1: TButton;
  14.     Button2: TButton;
  15.     Button3: TButton;
  16.     GroupBox2: TGroupBox;
  17.     RadioButton1: TRadioButton;
  18.     RadioButton2: TRadioButton;
  19.     XorRow_lbl: TLabel;
  20.     YorCol_lbl: TLabel;
  21.     FontDialog1: TFontDialog;
  22.     Button4: TButton;
  23.     BitBtn1: TBitBtn;
  24.     Button5: TButton;
  25.     Panel1: TPanel;
  26.     CheckBox1: TCheckBox;
  27.     CheckBox2: TCheckBox;
  28.     CheckBox3: TCheckBox;
  29.     CheckBox4: TCheckBox;
  30.     OpenDialog1: TOpenDialog;
  31.     ScrollBox1: TScrollBox;
  32.     GroupBox3: TGroupBox;
  33.     GroupBox4: TGroupBox;
  34.     SpinEdit1: TSpinEdit;
  35.     SpinEdit2: TSpinEdit;
  36.     GroupBox5: TGroupBox;
  37.     Label1: TLabel;
  38.     HexMap1: THexMap;
  39.     Button6: TButton;
  40.     Button7: TButton;
  41.     SaveDialog1: TSaveDialog;
  42.     procedure Button1Click(Sender: TObject);
  43.     procedure Button2Click(Sender: TObject);
  44.     procedure Button3Click(Sender: TObject);
  45.     procedure CheckBox2Click(Sender: TObject);
  46.     procedure CheckBox1Click(Sender: TObject);
  47.     procedure Button4Click(Sender: TObject);
  48.     procedure Button5Click(Sender: TObject);
  49.     procedure CheckBox3Click(Sender: TObject);
  50.     procedure CheckBox4Click(Sender: TObject);
  51.     procedure HexMap1MouseMove(Sender: TObject; Shift: TShiftState; X,
  52.       Y: Integer);
  53.     procedure SpinEdit1Change(Sender: TObject);
  54.     procedure SpinEdit2Change(Sender: TObject);
  55.     procedure HexMap1MouseDown(Sender: TObject; Button: TMouseButton;
  56.       Shift: TShiftState; X, Y: Integer);
  57.     procedure Button7Click(Sender: TObject);
  58.     procedure Button6Click(Sender: TObject);
  59.     procedure FormCreate(Sender: TObject);
  60.   private
  61.     { Private declarations }
  62.   public
  63.     { Public declarations }
  64.   end;
  65.  
  66. var
  67.   Form1: TForm1;
  68.   index: integer;
  69. implementation
  70.  
  71. {$R *.DFM}
  72.  
  73. procedure TForm1.Button1Click(Sender: TObject);
  74. begin
  75.  If colordialog1.execute then
  76.    Hexmap1.backcolor := colordialog1.color;
  77. end;
  78.  
  79. procedure TForm1.Button2Click(Sender: TObject);
  80. begin
  81.   If colordialog1.execute then
  82.    Hexmap1.Hexcolor := colordialog1.color;
  83. end;
  84.  
  85. procedure TForm1.Button3Click(Sender: TObject);
  86. begin
  87.   If colordialog1.execute then
  88.    Hexmap1.linecolor := colordialog1.color;
  89. end;
  90.  
  91. procedure TForm1.CheckBox2Click(Sender: TObject);
  92. begin
  93.   case checkbox2.state of
  94.    cbChecked:hexmap1.hexshowlabels := true;
  95.    cbUnchecked:hexmap1.hexshowlabels := false;
  96.   end;
  97. end;
  98.  
  99. procedure TForm1.CheckBox1Click(Sender: TObject);
  100. begin
  101.   case checkbox1.state of
  102.    cbChecked:hexmap1.hex3d := true;
  103.    cbUnchecked:hexmap1.hex3d := false;
  104.   end;
  105. end;
  106.  
  107. procedure TForm1.Button4Click(Sender: TObject);
  108. begin
  109. If fontdialog1.execute then
  110. hexmap1.font := fontdialog1.font;
  111.  
  112. end;
  113.  
  114. procedure TForm1.Button5Click(Sender: TObject);
  115. begin
  116. If Opendialog1.execute then
  117. hexmap1.mapimagename := Opendialog1.filename;
  118. end;
  119.  
  120. procedure TForm1.CheckBox3Click(Sender: TObject);
  121. begin
  122.   case checkbox3.state of
  123.    cbChecked:hexmap1.mapgridon := true;
  124.    cbUnchecked:hexmap1.mapgridon := false;
  125.   end;
  126. end;
  127.  
  128. procedure TForm1.CheckBox4Click(Sender: TObject);
  129. begin
  130.   case checkbox4.state of
  131.    cbChecked:
  132.     begin
  133.      button1.enabled := false;
  134.      button2.enabled := false;
  135.      button5.enabled := true;
  136.      If Opendialog1.execute then
  137.       hexmap1.mapimagename := Opendialog1.filename;
  138.      hexmap1.NoMapImage := false;
  139.      SpinEdit1.Value:=hexmap1.HexColumns;
  140.      SpinEdit2.Value:=hexmap1.HexRows;
  141.     end;
  142.    cbUnchecked:
  143.     begin
  144.      hexmap1.NoMapImage := true;
  145.      button1.enabled := true;
  146.      button2.enabled := true;
  147.      button5.enabled := false;
  148.     end;
  149.   end;
  150. end;
  151.  
  152. procedure TForm1.HexMap1MouseMove(Sender: TObject; Shift: TShiftState; X,
  153.   Y: Integer);
  154. var
  155.   position:tpoint;
  156. begin
  157.   if radiobutton1.checked = true then
  158.     begin
  159.     position := hexmap1.convertcoords(point(x,y),ptXY);
  160.     label1.enabled:=true;
  161.     XorRow_lbl.caption := 'Col: '+inttostr(position.x);
  162.     YorCol_lbl.caption := 'Row: '+inttostr(position.y);
  163.     end;
  164.  
  165.   if radiobutton2.checked = true then
  166.     begin
  167.     label1.caption:='Not Used';
  168.     label1.enabled:=false;
  169.     XorRow_lbl.caption := 'X: '+inttostr(x);
  170.     YorCol_lbl.caption := 'Y: '+inttostr(y);
  171.  
  172.     end;
  173. end;
  174.  
  175. procedure TForm1.SpinEdit1Change(Sender: TObject);
  176. begin
  177.  hexmap1.HexColumns := SpinEdit1.Value;
  178. end;
  179.  
  180. procedure TForm1.SpinEdit2Change(Sender: TObject);
  181. begin
  182.  hexmap1.HexRows := SpinEdit2.Value;
  183. end;
  184.  
  185. procedure TForm1.HexMap1MouseDown(Sender: TObject; Button: TMouseButton;
  186.   Shift: TShiftState; X, Y: Integer);
  187. var
  188.  ColorYouWant:TColor;
  189.  position, eposition:TPoint;
  190.  dist:integer;
  191. begin
  192.  position := hexmap1.convertcoords(point(x,y),ptXY);
  193.  if (HexMap1.NoMapImage = True) and (position.x <> 0)
  194.    and (position.y <> 0) then
  195.   begin
  196.    If colordialog1.execute then
  197.      ColorYouWant := colordialog1.color;
  198.    Hexmap1.PaintAHex(ColorYouWant, bsSolid, position);
  199.   end;
  200.  eposition.x := 1;
  201.  eposition.y := 1;
  202.  dist := hexmap1.RangeInHexes(position, eposition);
  203.  if (position.x = 0) or (position.y = 0)
  204.   then
  205.    label1.caption:='Out of Range'
  206.   else
  207.    label1.caption:=inttostr(dist);
  208. end;
  209.  
  210. procedure TForm1.Button7Click(Sender: TObject);
  211. var
  212.  MapFileName:String;
  213.  DidWeDoIt:Boolean;
  214. begin
  215.  MapFileName := '';
  216.  if OpenDialog1.execute then
  217.    begin
  218.     DidWeDoIt:=False;
  219.     MapFileName := OpenDialog1.filename;
  220.     DidWeDoIt:=hexmap1.loadhexmap(MapFileName);
  221.     if DidWeDoIt = True then
  222.      begin
  223.       button1.enabled:=false;
  224.       button2.enabled:=false;
  225.       button3.enabled:=false;
  226.       button4.enabled:=false;
  227.       button5.enabled:=false;
  228.       button7.enabled:=false;
  229.       CheckBox1.enabled:=false;
  230.       CheckBox2.enabled:=false;
  231.       CheckBox3.enabled:=false;
  232.       CheckBox4.enabled:=false;
  233.       spinedit1.enabled:=false;
  234.       spinedit2.enabled:=false;
  235.       groupbox3.enabled:=false;
  236.       groupbox4.enabled:=false;
  237.      end;
  238.    end;
  239. end;
  240.  
  241. procedure TForm1.Button6Click(Sender: TObject);
  242. var
  243.  MapFileName:String;
  244. begin
  245.  MapFileName := '';
  246.  if SaveDialog1.execute then
  247.    begin
  248.     MapFileName := SaveDialog1.filename;
  249.     hexmap1.savehexmap(MapFileName);
  250.    end;
  251.  
  252.  end;
  253.  
  254. procedure TForm1.FormCreate(Sender: TObject);
  255. begin
  256.  Label1.caption:='Click on a Hex!';
  257. end;
  258.  
  259. end.
  260.